// pages/phoneLogin/phoneLogin.js
import {
  http
} from '../../utils/network.js'
import {
  PATHS_ALIAS
} from '../../utils/api.js'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    phone: '',
    yzm: '',
    yzmBtnDisabled: true,
    loginBtnDisabled: true,
    seconds: '',
    actType: '', //	0代表微信号与新手机号做关联。1代表与已注册手机号做关联.2代表手机号已注册且绑定了非当前的微信号 3代表手机号已于该微信号关联，返回直接使用第三方登录即可
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    
  },
  // 登录
  login: function() {
    let _this = this;
    let actType = this.data.actType;
    if (actType == '0') { //手机号未注册
      this.newUserLogin();
    } else if (actType == '1') { //手机号已注册，未关联微信号   
      this.oldUserLogin();
    } else if (actType == '2') {   //手机号已注册，关联微信非本微信号
      wx.showModal({
        title: '提示',
        content: '该手机已关联微信号，是否重新关联？',
        showCancel: true,
        cancelText: '取消',
        cancelColor: 'red',
        confirmText: '确定',
        confirmColor: 'green',
        success: function (res) {
          if (res.confirm) {
            _this.oldUserLogin();
          } else if (res.cancel) {
            _this.setData({
              phone: '',
              yzm:''
            })
          }
        }
      })
    } else {
      wx.showToast({
        title: "请先发送验证码",
        icon: "none"
      });
    }
  },
  // 未注册用户登录
  newUserLogin:function(){
    let _this = this;
    let params = {
      mobile: this.data.phone,
      thirdId: wx.getStorageSync('unionId'), //	第三方id	string	
      businessType: '01',
      logType: '07',
      resId: 'weixin',
      userSystem: '0052',
      userType: '0',
      verCode: this.data.yzm
    };
    http({
      path: PATHS_ALIAS.CHECK_REGIEST_WITHOUT_PASS,
      params: params,
      header: {
        sendChl: 'hzsmk.h5', // 应用渠道(必填) 
        sendClient: 'hellohzsmk', //应用验证码(必填) string 
      },
      success: function (res) {
        // console.log(res);
        // 保存用户token
        wx.setStorageSync('accessToken', res.response.accessToken);
        wx.redirectTo({
          url: '/pages/index/index',
        })
      },
      fail: function (err) {
        console.log(err);
      }
    })
  },
  // 已注册用户登录
  oldUserLogin:function(){
    let _this = this;
    let params = {
      logType: '07',    //	登陆类型
      mobile: this.data.phone,    //	手机号	
      thirdId: wx.getStorageSync('unionId'),    //	第三方id
      veriCode: this.data.yzm,    //	验证码
    };
    http({
      path: PATHS_ALIAS.LOGIN_MSG_CHECK,
      params: params,
      header: {
        sendChl: 'hzsmk.h5', // 应用渠道(必填) 
        sendClient: 'hellohzsmk', //应用验证码(必填) string 
      },
      success: function (res) {
        console.log(res);
        // 保存用户token
        wx.setStorageSync('accessToken', res.response.accessToken);
        wx.redirectTo({
          url: '/pages/index/index',
        })
      },
      fail: function (err) {
        console.log(err);
      }
    })
  },
  // 发送验证码--校验手机号是否注册或已绑定第三方
  sendYzm: function() {
    let _this = this;
    let params = {
      logType: '07', //	登录类型	string	02 - 微信openid登录 03-支付宝id登录 05-qq id登录 06 - 微博 id登录 07 - 微信unionid登录
      mobile: this.data.phone, //	手机号	string	
      thirdId: wx.getStorageSync('unionId'), //	第三方id	string	
      userNameType: '1', //	用户名类型	string	传1
    };
    http({
      path: PATHS_ALIAS.CHECK_THIRD_USER_EXIST,
      params: params,
      header: {
        sendChl: 'hzsmk.h5', // 应用渠道(必填) 
        sendClient: 'hellohzsmk', //应用验证码(必填) string 
      },
      success: function(res) {
        // console.log(res);
        // 校验成功
        _this.setData({
          actType: res.response.actType
        });
        _this.sendMessage();
      },
      fail: function(err) {
        console.log(err);
        // console.log("判断手机号绑定关系失败")
        wx.showToast({
          title: err.msg,
          icon: 'none'
        })
      }
    })
  },
  // 校验成功-发送验证码
  sendMessage: function() {
    let actType = this.data.actType;
    let _this = this;
    if (actType == '0') { //未注册，去注册并关联
      let params = {
        mobile: this.data.phone,
        businessType: '01'
      };
      http({
        path: PATHS_ALIAS.SEND_REGISTER_MSG,
        params: params,
        header: {
          sendChl: 'hzsmk.h5', // 应用渠道(必填) 
          sendClient: 'hellohzsmk', //应用验证码(必填) string 
        },
        success: function(res) {
          console.log(res);
          // 开始倒计时
          _this.countTime();
        },
        fail: function(err) {
          console.log("发送短信失败")
          wx.showToast({
            title: err.msg,
            icon: 'none'
          })
        }
      })
    } else if (actType == '1' || actType == '2') { //登录
      let params = {
        mobile: this.data.phone,
        businessType: '02'
      };
      http({
        path: PATHS_ALIAS.SEND_REGISTER_MSG,
        params: params,
        header: {
          sendChl: 'hzsmk.h5', // 应用渠道(必填) 
          sendClient: 'hellohzsmk', //应用验证码(必填) string 
        },
        success: function(res) {
          console.log(res);
          // 开始倒计时
          _this.countTime();
        },
        fail: function(err) {
          console.log(err);
          console.log("发送短信失败")
          wx.showToast({
            title: err.msg,
            icon: 'none'
          })
        }
      })
    } else if (actType == '3') {   //已关联该手机号，请直接登录
      wx.redirectTo({
        url: '/pages/index/index',
      })
    }
  },
  // 倒计时
  countTime: function() {
    // 提示已发送验证码
    var _this = this;
    wx.showToast({
      title: "验证码已发送到您的手机，请注意查收！",
      icon: "none"
    });
    _this.setData({
      seconds: 60
    });
    var h = this.data.seconds;
    var time = setInterval(function() {
      if (h > 0) {
        h--;
        _this.setData({
          seconds: h
        });
      } else {
        clearInterval(time);
      }
    }, 1000)

  },
  // 输入监听
  inputWacth: function(e) {
    let item = e.currentTarget.dataset.model;
    this.setData({
      [item]: e.detail.value
    });
    if (item == 'phone' && this.checkPhone()) {
      this.setData({
        yzmBtnDisabled: false
      });
    };
    if (this.checkPhone() && this.checkYzm()) {
      this.setData({
        loginBtnDisabled: false
      })
    }
  },
  // 校验手机号码
  checkPhone: function() {
    let phoneReg = /^0?1[3-8|4|5|7|8][0-9]\d{8}$/;
    var phone = this.data.phone;
    if (!phoneReg.test(phone)) {
      return false;
    } else {
      return true;
    }
  },
  // 校验验证码
  checkYzm: function() {
    var yzm = this.data.yzm;
    if (yzm.length < 6) {
      return false;
    } else {
      return true;
    }
  },





  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})